from bot.kernel.bot_func import * 
from flask import current_app as bot
# __plugin_name__ = '插件名 如果需要请不要注释'
# __plugin_usage__ = '插件说明 如果需要请不要注释'

def register(bot_app):
    # 接受 ['friend_msg', 'group_msg']
    @bot_app.on_command("命令名", ['别名1', '别名多用']) 
    def test(args, session):
        # 需要 from bot.kernel.bot_func import *
        # 三种发送方法
        info = session.info
        robot_wxid = info['robot_wxid'] # info 的具体情况请查看文档
        from_wxid = info['from_wxid']
        send_text_msg(robot_wxid, from_wxid, f'机器人回复啦on_command1')

    # 接受 ['friend_msg', 'group_msg']
    @bot_app.on_command("命令名2", ['别名2', '别名多用']) # 两个 别名多用，那命令是别名多用的话就都能用
    def test1(args, session):
        # 三种发送方法
        # session.send_text_msg(f'机器人回复啦on_command2')
        pass

    # 接受 ['friend_msg', 'group_msg']
    @bot_app.on_command("命令名3") # 两个 别名多用，那命令是别名多用的话就都能用
    def test2(args, session):
        # 需要 from flask import current_app as bot
        # 三种发送方法
        session = bot.session # 其实根本没必要
        # session.send_text_msg(f'机器人回复啦on_command2')
        pass

    # ['media_image', 'media_audio', 'media_video', 'media_location'] 
    @bot_app.on_command("media_image")
    def media_image(args, session): # 命令只会是上边几个中的一个, 为固定命令名, 无别名, 类似暂时收录还不全
        # 建议在fixed模块中书写，这里只是一个例子
        # session.send_text_msg(f'机器人回复啦media_image')
        pass



    # 接受 ['group_member_add', 'group_member_decrease', 'friend_verify']
    @bot_app.on_request("group_member_add") # 注意 command 和 request 不一样, 命令只会是上边几个中的一个
    def test3(json_data, session):
        # 建议在fixed模块中书写，这里只是一个例子
        # session.send_text_msg(f'机器人回复啦on_request')
        pass

    # 接受 ['received_transfer', 'scan_cash_money', 'contacts_change', 'sys_msg']
    @bot_app.on_notice("received_transfer") # 当然啦, 还有notice, 命令只会是上边几个中的一个
    def test4(json_data, session):
        # 建议在fixed模块中书写，这里只是一个例子
        pass

    # 另外注意, 机器人的初始化, 开、关等事件(['init', 'enable', 'login', 'stop'])操作在 bot.plugins。fixed._on_env下